<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:c="http://java.sun.com/jsp/jstl/core"
                xmlns:fn="http://java.sun.com/jsp/jstl/functions"
                xmlns:ds="http://deltaset.org/deltaset-faces"
                xmlns:mi="http://java.sun.com/jsf/composite/deltaset.meta/internal"
                xmlns:composite="http://java.sun.com/jsf/composite">
    <composite:interface>
        <composite:attribute name="model" required="true"/>
        <composite:attribute name="fields" required="true"/>
        <composite:attribute name="meta" required="true"/>
        <composite:attribute name="owner" required="true"/>
        <composite:attribute name="formId" required="true"/>
    </composite:interface>

    <composite:implementation>
        <c:forEach items="#{cc.attrs.fields}" var="field">
            <mi:input meta="#{cc.attrs.meta}"
                      formId="#{cc.attrs.formId}"
                      field="#{field}"
                      label="#{cc.attrs.meta.labelField(field,cc.attrs.owner)}"
                      value="#{cc.attrs.model[field.propertyName]}" 
                      values="#{cc.attrs.meta.getSelectOptions(field)}"/>
        </c:forEach>
    </composite:implementation>

</ui:composition>
